/*
    created: 2023/4/11
    filename: seqstack.h
    author： 李东霖
    purpose： 使用静态数组实现顺序栈

*/

#ifndef _SEQSTACK_H_
#define _SEQSTACK_H_

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

#define MAXSIZE 10
typedef int ElemType;
//数据结构
typedef struct SeqStack
{
    ElemType data[MAXSIZE];
    int top; //栈顶指针 -1为空栈
}SeqStack,*PSeqStack;


//初始化  
void InitStack(PSeqStack s); 
//销毁栈 
void DistroyStack(PSeqStack s); 
//清空栈 
void ClearStack(PSeqStack s);

//判断栈空 返回值 1-空 0-非空 -1-传入栈是空的
int StackEmpty(PSeqStack s); 
//判断栈满 返回值 1-满 0-非满 -1-传入栈是空的
int StackFull(PSeqStack s); 
//将元素压入栈顶 返回值 1-成功 0-失败 -1-传入栈是空的
int Push(PSeqStack s,ElemType *e);  
//将栈顶元素出栈存放到e中  返回值 1-成功 0-失败 -1-传入栈是空的
int Pop(PSeqStack s,ElemType *e); 
//得到栈顶元素  
int GetTop(PSeqStack s,ElemType *e);  



#endif //!_SEQSTACK_H_